home *** CD-ROM | disk | FTP | other *** search
/ Developer CD Series 1997 July: Mac OS SDK / Dev.CD Jul 97 SDK1.toast / Development Kits (Disc 1) / Interfaces&Libraries / Interfaces / PInterfaces / Quickdraw.p < prev    next >
Encoding:
Text File  |  1996-05-05  |  50.3 KB  |  1,804 lines  |  [TEXT/MPS ]

  1. {
  2.      File:        Quickdraw.p
  3.  
  4.      Contains:    QuickDraw Graphics Interfaces.
  5.  
  6.      Version:    Technology:    System 7.5
  7.                  Package:    Universal Interfaces 2.1.3
  8.  
  9.      Copyright:    © 1984-1995 by Apple Computer, Inc.
  10.                  All rights reserved.
  11.  
  12.      Bugs?:        If you find a problem with this file, use the Apple Bug Reporter
  13.                  stack.  Include the file and version information (from above)
  14.                  in the problem description and send to:
  15.                      Internet:    apple.bugs@applelink.apple.com
  16.                      AppleLink:    APPLE.BUGS
  17.  
  18. }
  19.  
  20. {$IFC UNDEFINED UsingIncludes}
  21. {$SETC UsingIncludes := 0}
  22. {$ENDC}
  23.  
  24. {$IFC NOT UsingIncludes}
  25.  UNIT Quickdraw;
  26.  INTERFACE
  27. {$ENDC}
  28.  
  29. {$IFC UNDEFINED __QUICKDRAW__}
  30. {$SETC __QUICKDRAW__ := 1}
  31.  
  32. {$I+}
  33. {$SETC QuickdrawIncludes := UsingIncludes}
  34. {$SETC UsingIncludes := 1}
  35.  
  36.  
  37. {$IFC UNDEFINED __TYPES__}
  38. {$I Types.p}
  39. {$ENDC}
  40. {    ConditionalMacros.p                                            }
  41.  
  42. {$IFC UNDEFINED __MIXEDMODE__}
  43. {$I MixedMode.p}
  44. {$ENDC}
  45.  
  46. {$IFC UNDEFINED __QUICKDRAWTEXT__}
  47. {$I QuickdrawText.p}
  48. {$ENDC}
  49.  
  50. {$PUSH}
  51. {$ALIGN MAC68K}
  52. {$LibExport+}
  53.  
  54. CONST
  55.     invalColReq                    = -1;                            {invalid color table request}
  56. { transfer modes }
  57.     srcCopy                        = 0;                            {the 16 transfer modes}
  58.     srcOr                        = 1;
  59.     srcXor                        = 2;
  60.     srcBic                        = 3;
  61.     notSrcCopy                    = 4;
  62.     notSrcOr                    = 5;
  63.     notSrcXor                    = 6;
  64.     notSrcBic                    = 7;
  65.     patCopy                        = 8;
  66.     patOr                        = 9;
  67.     patXor                        = 10;
  68.     patBic                        = 11;
  69.     notPatCopy                    = 12;
  70.     notPatOr                    = 13;
  71.     notPatXor                    = 14;
  72.     notPatBic                    = 15;
  73. { Special Text Transfer Mode }
  74.     grayishTextOr                = 49;
  75.     hilitetransfermode            = 50;
  76. { Arithmetic transfer modes }
  77.     blend                        = 32;
  78.     addPin                        = 33;
  79.  
  80.     addOver                        = 34;
  81.     subPin                        = 35;
  82.     addMax                        = 37;
  83.     adMax                        = 37;
  84.     subOver                        = 38;
  85.     adMin                        = 39;
  86.     ditherCopy                    = 64;
  87. { Transparent mode constant }
  88.     transparent                    = 36;
  89.     italicBit                    = 1;
  90.     ulineBit                    = 2;
  91.     outlineBit                    = 3;
  92.     shadowBit                    = 4;
  93.     condenseBit                    = 5;
  94.     extendBit                    = 6;
  95. { QuickDraw color separation constants }
  96.     normalBit                    = 0;                            {normal screen mapping}
  97.     inverseBit                    = 1;                            {inverse screen mapping}
  98.     redBit                        = 4;                            {RGB additive mapping}
  99.     greenBit                    = 3;
  100.     blueBit                        = 2;
  101.     cyanBit                        = 8;                            {CMYBk subtractive mapping}
  102.     magentaBit                    = 7;
  103.     yellowBit                    = 6;
  104.     blackBit                    = 5;
  105.     blackColor                    = 33;                            {colors expressed in these mappings}
  106.     whiteColor                    = 30;
  107.     redColor                    = 205;
  108.  
  109.     greenColor                    = 341;
  110.     blueColor                    = 409;
  111.     cyanColor                    = 273;
  112.     magentaColor                = 137;
  113.     yellowColor                    = 69;
  114.     picLParen                    = 0;                            {standard picture comments}
  115.     picRParen                    = 1;
  116.     clutType                    = 0;                            {0 if lookup table}
  117.     fixedType                    = 1;                            {1 if fixed table}
  118.     directType                    = 2;                            {2 if direct values}
  119.     gdDevType                    = 0;                            {0 = monochrome 1 = color}
  120.  
  121.     interlacedDevice            = 2;                            { 1 if single pixel lines look bad }
  122.     roundedDevice                = 5;                            { 1 if device has been “rounded” into the GrayRgn }
  123.     hasAuxMenuBar                = 6;                            { 1 if device has an aux menu bar on it }
  124.     burstDevice                    = 7;
  125.     ext32Device                    = 8;
  126.     ramInit                        = 10;                            {1 if initialized from 'scrn' resource}
  127.     mainScreen                    = 11;                            { 1 if main screen }
  128.     allInit                        = 12;                            { 1 if all devices initialized }
  129.     screenDevice                = 13;                            {1 if screen device [not used]}
  130.     noDriver                    = 14;                            { 1 if no driver for this GDevice }
  131.     screenActive                = 15;                            {1 if in use}
  132.     hiliteBit                    = 7;                            {flag bit in HiliteMode (lowMem flag)}
  133.     pHiliteBit                    = 0;                            {flag bit in HiliteMode used with BitClr procedure}
  134.     defQDColors                    = 127;                            {resource ID of clut for default QDColors}
  135. { pixel type }
  136.     RGBDirect                    = 16;                            { 16 & 32 bits/pixel pixelType value }
  137. { pmVersion values }
  138.     baseAddr32                    = 4;                            {pixmap base address is 32-bit address}
  139.  
  140.     sysPatListID                = 0;
  141.     iBeamCursor                    = 1;
  142.     crossCursor                    = 2;
  143.     plusCursor                    = 3;
  144.     watchCursor                    = 4;
  145.  
  146.     kQDGrafVerbFrame            = 0;
  147.     kQDGrafVerbPaint            = 1;
  148.     kQDGrafVerbErase            = 2;
  149.     kQDGrafVerbInvert            = 3;
  150.     kQDGrafVerbFill                = 4;
  151.  
  152. {$IFC OLDROUTINENAMES }
  153.     frame                        = kQDGrafVerbFrame;
  154.     paint                        = kQDGrafVerbPaint;
  155.     erase                        = kQDGrafVerbErase;
  156.     invert                        = kQDGrafVerbInvert;
  157.     fill                        = kQDGrafVerbFill;
  158. {$ENDC}
  159.  
  160. TYPE
  161.     GrafVerb = SInt8;
  162.  
  163.  
  164. CONST
  165.     chunky                        = 0;
  166.     chunkyPlanar                = 1;
  167.     planar                        = 2;
  168.  
  169.     
  170. TYPE
  171.     PixelType = SInt8;
  172.  
  173.     Bits16 = ARRAY [0..15] OF INTEGER;
  174.  
  175. {**************   IMPORTANT NOTE REGARDING Pattern  **************************************
  176.    Patterns were originally defined as:
  177.    
  178.         C:             typedef unsigned char Pattern[8];
  179.         Pascal:        Pattern = PACKED ARRAY [0..7] OF 0..255;
  180.         
  181.    The old array defintion of Pattern would cause 68000 based CPU's to crash in certain circum-
  182.    stances. The new struct definition is safe, but may require source code changes to compile.
  183.    Read the details in TechNote "Platforms & Tools" #PT 38.
  184.     
  185. ********************************************************************************************}
  186.     Pattern = RECORD
  187.         pat:                    PACKED ARRAY [0..7] OF SInt8; (* UInt8 *)
  188.     END;
  189.  
  190. {
  191.  ConstPatternParam is now longer needed.  It was first created when Pattern was an array.
  192.  Now that Pattern is a struct, it is more straight forward just add the "const" qualifier
  193.  on the parameter type (e.g. "const Pattern * pat" instead of "ConstPatternParam pat").
  194. }
  195.     PatPtr = ^Pattern;
  196.  
  197.     PatHandle = ^PatPtr;
  198.  
  199.     QDByte = SignedByte;
  200.  
  201.     QDPtr = Ptr;
  202.  
  203.     QDHandle = Handle;
  204.  
  205.     QDErr = INTEGER;
  206.  
  207.  
  208. CONST
  209.     singleDevicesBit            = 0;
  210.     dontMatchSeedsBit            = 1;
  211.     allDevicesBit                = 2;
  212.  
  213.     singleDevices                = 1 * (2**(singleDevicesBit));
  214.     dontMatchSeeds                = 1 * (2**(dontMatchSeedsBit));
  215.     allDevices                    = 1 * (2**(allDevicesBit));
  216.  
  217.     
  218. TYPE
  219.     DeviceLoopFlags = LONGINT;
  220.  
  221.     BitMap = RECORD
  222.         baseAddr:                Ptr;
  223.         rowBytes:                INTEGER;
  224.         bounds:                    Rect;
  225.     END;
  226.  
  227.     BitMapPtr = ^BitMap;
  228.     BitMapHandle = ^BitMapPtr;
  229.  
  230.     Cursor = RECORD
  231.         data:                    Bits16;
  232.         mask:                    Bits16;
  233.         hotSpot:                Point;
  234.     END;
  235.  
  236.     CursPtr = ^Cursor;
  237.     CursHandle = ^CursPtr;
  238.  
  239.     PenState = RECORD
  240.         pnLoc:                    Point;
  241.         pnSize:                    Point;
  242.         pnMode:                    INTEGER;
  243.         pnPat:                    Pattern;
  244.     END;
  245.  
  246.     Region = RECORD
  247.         rgnSize:                INTEGER;                                {size in bytes}
  248.         rgnBBox:                Rect;                                    {enclosing rectangle}
  249.     END;
  250.  
  251.     RgnPtr = ^Region;
  252.     RgnHandle = ^RgnPtr;
  253.  
  254.     Picture = RECORD
  255.         picSize:                INTEGER;
  256.         picFrame:                Rect;
  257.     END;
  258.  
  259.     PicPtr = ^Picture;
  260.     PicHandle = ^PicPtr;
  261.  
  262.     Polygon = RECORD
  263.         polySize:                INTEGER;
  264.         polyBBox:                Rect;
  265.         polyPoints:                ARRAY [0..0] OF Point;
  266.     END;
  267.  
  268.     PolyPtr = ^Polygon;
  269.     PolyHandle = ^PolyPtr;
  270.  
  271.     QDTextProcPtr = ProcPtr;  { PROCEDURE QDText(byteCount: INTEGER; textBuf: Ptr; numer: Point; denom: Point); }
  272.     QDLineProcPtr = ProcPtr;  { PROCEDURE QDLine(newPt: Point); }
  273.     QDRectProcPtr = ProcPtr;  { PROCEDURE QDRect(verb: ByteParameter; VAR r: Rect); }
  274.     QDRRectProcPtr = ProcPtr;  { PROCEDURE QDRRect(verb: ByteParameter; VAR r: Rect; ovalWidth: INTEGER; ovalHeight: INTEGER); }
  275.     QDOvalProcPtr = ProcPtr;  { PROCEDURE QDOval(verb: ByteParameter; VAR r: Rect); }
  276.     QDArcProcPtr = ProcPtr;  { PROCEDURE QDArc(verb: ByteParameter; VAR r: Rect; startAngle: INTEGER; arcAngle: INTEGER); }
  277.     QDPolyProcPtr = ProcPtr;  { PROCEDURE QDPoly(verb: ByteParameter; poly: PolyHandle); }
  278.     QDRgnProcPtr = ProcPtr;  { PROCEDURE QDRgn(verb: ByteParameter; rgn: RgnHandle); }
  279.     QDBitsProcPtr = ProcPtr;  { PROCEDURE QDBits(VAR srcBits: BitMap; VAR srcRect: Rect; VAR dstRect: Rect; mode: INTEGER; maskRgn: RgnHandle); }
  280.     QDCommentProcPtr = ProcPtr;  { PROCEDURE QDComment(kind: INTEGER; dataSize: INTEGER; dataHandle: Handle); }
  281.     QDTxMeasProcPtr = ProcPtr;  { FUNCTION QDTxMeas(byteCount: INTEGER; textAddr: Ptr; VAR numer: Point; VAR denom: Point; VAR info: FontInfo): INTEGER; }
  282.     QDGetPicProcPtr = ProcPtr;  { PROCEDURE QDGetPic(dataPtr: Ptr; byteCount: INTEGER); }
  283.     QDPutPicProcPtr = ProcPtr;  { PROCEDURE QDPutPic(dataPtr: Ptr; byteCount: INTEGER); }
  284.     QDOpcodeProcPtr = ProcPtr;  { PROCEDURE QDOpcode(VAR fromRect: Rect; VAR toRect: Rect; opcode: INTEGER; version: INTEGER); }
  285.     QDJShieldCursorProcPtr = ProcPtr;  { PROCEDURE QDJShieldCursor(left: INTEGER; top: INTEGER; right: INTEGER; bottom: INTEGER); }
  286.     QDTextUPP = UniversalProcPtr;
  287.     QDLineUPP = UniversalProcPtr;
  288.     QDRectUPP = UniversalProcPtr;
  289.     QDRRectUPP = UniversalProcPtr;
  290.     QDOvalUPP = UniversalProcPtr;
  291.     QDArcUPP = UniversalProcPtr;
  292.     QDPolyUPP = UniversalProcPtr;
  293.     QDRgnUPP = UniversalProcPtr;
  294.     QDBitsUPP = UniversalProcPtr;
  295.     QDCommentUPP = UniversalProcPtr;
  296.     QDTxMeasUPP = UniversalProcPtr;
  297.     QDGetPicUPP = UniversalProcPtr;
  298.     QDPutPicUPP = UniversalProcPtr;
  299.     QDOpcodeUPP = UniversalProcPtr;
  300.     QDJShieldCursorUPP = UniversalProcPtr;
  301.  
  302.     QDProcs = RECORD
  303.         textProc:                QDTextUPP;
  304.         lineProc:                QDLineUPP;
  305.         rectProc:                QDRectUPP;
  306.         rRectProc:                QDRRectUPP;
  307.         ovalProc:                QDOvalUPP;
  308.         arcProc:                QDArcUPP;
  309.         polyProc:                QDPolyUPP;
  310.         rgnProc:                QDRgnUPP;
  311.         bitsProc:                QDBitsUPP;
  312.         commentProc:            QDCommentUPP;
  313.         txMeasProc:                QDTxMeasUPP;
  314.         getPicProc:                QDGetPicUPP;
  315.         putPicProc:                QDPutPicUPP;
  316.     END;
  317.  
  318.     QDProcsPtr = ^QDProcs;
  319.  
  320. CONST
  321.     uppQDTextProcInfo = $00003F80; { PROCEDURE (2 byte param, 4 byte param, 4 byte param, 4 byte param); }
  322.     uppQDLineProcInfo = $000000C0; { PROCEDURE (4 byte param); }
  323.     uppQDRectProcInfo = $00000340; { PROCEDURE (1 byte param, 4 byte param); }
  324.     uppQDRRectProcInfo = $00002B40; { PROCEDURE (1 byte param, 4 byte param, 2 byte param, 2 byte param); }
  325.     uppQDOvalProcInfo = $00000340; { PROCEDURE (1 byte param, 4 byte param); }
  326.     uppQDArcProcInfo = $00002B40; { PROCEDURE (1 byte param, 4 byte param, 2 byte param, 2 byte param); }
  327.     uppQDPolyProcInfo = $00000340; { PROCEDURE (1 byte param, 4 byte param); }
  328.     uppQDRgnProcInfo = $00000340; { PROCEDURE (1 byte param, 4 byte param); }
  329.     uppQDBitsProcInfo = $0000EFC0; { PROCEDURE (4 byte param, 4 byte param, 4 byte param, 2 byte param, 4 byte param); }
  330.     uppQDCommentProcInfo = $00000E80; { PROCEDURE (2 byte param, 2 byte param, 4 byte param); }
  331.     uppQDTxMeasProcInfo = $0000FFA0; { FUNCTION (2 byte param, 4 byte param, 4 byte param, 4 byte param, 4 byte param): 2 byte result; }
  332.     uppQDGetPicProcInfo = $000002C0; { PROCEDURE (4 byte param, 2 byte param); }
  333.     uppQDPutPicProcInfo = $000002C0; { PROCEDURE (4 byte param, 2 byte param); }
  334.     uppQDOpcodeProcInfo = $00002BC0; { PROCEDURE (4 byte param, 4 byte param, 2 byte param, 2 byte param); }
  335.     uppQDJShieldCursorProcInfo = $00002A80; { PROCEDURE (2 byte param, 2 byte param, 2 byte param, 2 byte param); }
  336.  
  337. FUNCTION NewQDTextProc(userRoutine: QDTextProcPtr): QDTextUPP;
  338.     {$IFC NOT GENERATINGCFM }
  339.     INLINE $2E9F;
  340.     {$ENDC}
  341.  
  342. FUNCTION NewQDLineProc(userRoutine: QDLineProcPtr): QDLineUPP;
  343.     {$IFC NOT GENERATINGCFM }
  344.     INLINE $2E9F;
  345.     {$ENDC}
  346.  
  347. FUNCTION NewQDRectProc(userRoutine: QDRectProcPtr): QDRectUPP;
  348.     {$IFC NOT GENERATINGCFM }
  349.     INLINE $2E9F;
  350.     {$ENDC}
  351.  
  352. FUNCTION NewQDRRectProc(userRoutine: QDRRectProcPtr): QDRRectUPP;
  353.     {$IFC NOT GENERATINGCFM }
  354.     INLINE $2E9F;
  355.     {$ENDC}
  356.  
  357. FUNCTION NewQDOvalProc(userRoutine: QDOvalProcPtr): QDOvalUPP;
  358.     {$IFC NOT GENERATINGCFM }
  359.     INLINE $2E9F;
  360.     {$ENDC}
  361.  
  362. FUNCTION NewQDArcProc(userRoutine: QDArcProcPtr): QDArcUPP;
  363.     {$IFC NOT GENERATINGCFM }
  364.     INLINE $2E9F;
  365.     {$ENDC}
  366.  
  367. FUNCTION NewQDPolyProc(userRoutine: QDPolyProcPtr): QDPolyUPP;
  368.     {$IFC NOT GENERATINGCFM }
  369.     INLINE $2E9F;
  370.     {$ENDC}
  371.  
  372. FUNCTION NewQDRgnProc(userRoutine: QDRgnProcPtr): QDRgnUPP;
  373.     {$IFC NOT GENERATINGCFM }
  374.     INLINE $2E9F;
  375.     {$ENDC}
  376.  
  377. FUNCTION NewQDBitsProc(userRoutine: QDBitsProcPtr): QDBitsUPP;
  378.     {$IFC NOT GENERATINGCFM }
  379.     INLINE $2E9F;
  380.     {$ENDC}
  381.  
  382. FUNCTION NewQDCommentProc(userRoutine: QDCommentProcPtr): QDCommentUPP;
  383.     {$IFC NOT GENERATINGCFM }
  384.     INLINE $2E9F;
  385.     {$ENDC}
  386.  
  387. FUNCTION NewQDTxMeasProc(userRoutine: QDTxMeasProcPtr): QDTxMeasUPP;
  388.     {$IFC NOT GENERATINGCFM }
  389.     INLINE $2E9F;
  390.     {$ENDC}
  391.  
  392. FUNCTION NewQDGetPicProc(userRoutine: QDGetPicProcPtr): QDGetPicUPP;
  393.     {$IFC NOT GENERATINGCFM }
  394.     INLINE $2E9F;
  395.     {$ENDC}
  396.  
  397. FUNCTION NewQDPutPicProc(userRoutine: QDPutPicProcPtr): QDPutPicUPP;
  398.     {$IFC NOT GENERATINGCFM }
  399.     INLINE $2E9F;
  400.     {$ENDC}
  401.  
  402. FUNCTION NewQDOpcodeProc(userRoutine: QDOpcodeProcPtr): QDOpcodeUPP;
  403.     {$IFC NOT GENERATINGCFM }
  404.     INLINE $2E9F;
  405.     {$ENDC}
  406.  
  407. FUNCTION NewQDJShieldCursorProc(userRoutine: QDJShieldCursorProcPtr): QDJShieldCursorUPP;
  408.     {$IFC NOT GENERATINGCFM }
  409.     INLINE $2E9F;
  410.     {$ENDC}
  411.  
  412. PROCEDURE CallQDTextProc(byteCount: INTEGER; textBuf: Ptr; numer: Point; denom: Point; userRoutine: QDTextUPP);
  413.     {$IFC NOT GENERATINGCFM}
  414.     INLINE $205F, $4E90;
  415.     {$ENDC}
  416.  
  417. PROCEDURE CallQDLineProc(newPt: Point; userRoutine: QDLineUPP);
  418.     {$IFC NOT GENERATINGCFM}
  419.     INLINE $205F, $4E90;
  420.     {$ENDC}
  421.  
  422. PROCEDURE CallQDRectProc(verb: ByteParameter; VAR r: Rect; userRoutine: QDRectUPP);
  423.     {$IFC NOT GENERATINGCFM}
  424.     INLINE $205F, $4E90;
  425.     {$ENDC}
  426.  
  427. PROCEDURE CallQDRRectProc(verb: ByteParameter; VAR r: Rect; ovalWidth: INTEGER; ovalHeight: INTEGER; userRoutine: QDRRectUPP);
  428.     {$IFC NOT GENERATINGCFM}
  429.     INLINE $205F, $4E90;
  430.     {$ENDC}
  431.  
  432. PROCEDURE CallQDOvalProc(verb: ByteParameter; VAR r: Rect; userRoutine: QDOvalUPP);
  433.     {$IFC NOT GENERATINGCFM}
  434.     INLINE $205F, $4E90;
  435.     {$ENDC}
  436.  
  437. PROCEDURE CallQDArcProc(verb: ByteParameter; VAR r: Rect; startAngle: INTEGER; arcAngle: INTEGER; userRoutine: QDArcUPP);
  438.     {$IFC NOT GENERATINGCFM}
  439.     INLINE $205F, $4E90;
  440.     {$ENDC}
  441.  
  442. PROCEDURE CallQDPolyProc(verb: ByteParameter; poly: PolyHandle; userRoutine: QDPolyUPP);
  443.     {$IFC NOT GENERATINGCFM}
  444.     INLINE $205F, $4E90;
  445.     {$ENDC}
  446.  
  447. PROCEDURE CallQDRgnProc(verb: ByteParameter; rgn: RgnHandle; userRoutine: QDRgnUPP);
  448.     {$IFC NOT GENERATINGCFM}
  449.     INLINE $205F, $4E90;
  450.     {$ENDC}
  451.  
  452. PROCEDURE CallQDBitsProc(VAR srcBits: BitMap; VAR srcRect: Rect; VAR dstRect: Rect; mode: INTEGER; maskRgn: RgnHandle; userRoutine: QDBitsUPP);
  453.     {$IFC NOT GENERATINGCFM}
  454.     INLINE $205F, $4E90;
  455.     {$ENDC}
  456.  
  457. PROCEDURE CallQDCommentProc(kind: INTEGER; dataSize: INTEGER; dataHandle: Handle; userRoutine: QDCommentUPP);
  458.     {$IFC NOT GENERATINGCFM}
  459.     INLINE $205F, $4E90;
  460.     {$ENDC}
  461.  
  462. FUNCTION CallQDTxMeasProc(byteCount: INTEGER; textAddr: Ptr; VAR numer: Point; VAR denom: Point; VAR info: FontInfo; userRoutine: QDTxMeasUPP): INTEGER;
  463.     {$IFC NOT GENERATINGCFM}
  464.     INLINE $205F, $4E90;
  465.     {$ENDC}
  466.  
  467. PROCEDURE CallQDGetPicProc(dataPtr: Ptr; byteCount: INTEGER; userRoutine: QDGetPicUPP);
  468.     {$IFC NOT GENERATINGCFM}
  469.     INLINE $205F, $4E90;
  470.     {$ENDC}
  471.  
  472. PROCEDURE CallQDPutPicProc(dataPtr: Ptr; byteCount: INTEGER; userRoutine: QDPutPicUPP);
  473.     {$IFC NOT GENERATINGCFM}
  474.     INLINE $205F, $4E90;
  475.     {$ENDC}
  476.  
  477. PROCEDURE CallQDOpcodeProc(VAR fromRect: Rect; VAR toRect: Rect; opcode: INTEGER; version: INTEGER; userRoutine: QDOpcodeUPP);
  478.     {$IFC NOT GENERATINGCFM}
  479.     INLINE $205F, $4E90;
  480.     {$ENDC}
  481.  
  482. PROCEDURE CallQDJShieldCursorProc(left: INTEGER; top: INTEGER; right: INTEGER; bottom: INTEGER; userRoutine: QDJShieldCursorUPP);
  483.     {$IFC NOT GENERATINGCFM}
  484.     INLINE $205F, $4E90;
  485.     {$ENDC}
  486.  
  487. TYPE
  488.     GrafPort = RECORD
  489.         device:                    INTEGER;
  490.         portBits:                BitMap;
  491.         portRect:                Rect;
  492.         visRgn:                    RgnHandle;
  493.         clipRgn:                RgnHandle;
  494.         bkPat:                    Pattern;
  495.         fillPat:                Pattern;
  496.         pnLoc:                    Point;
  497.         pnSize:                    Point;
  498.         pnMode:                    INTEGER;
  499.         pnPat:                    Pattern;
  500.         pnVis:                    INTEGER;
  501.         txFont:                    INTEGER;
  502.         txFace:                    Style;                                    {txFace is unpacked byte but push as short}
  503.         txMode:                    INTEGER;
  504.         txSize:                    INTEGER;
  505.         spExtra:                Fixed;
  506.         fgColor:                LONGINT;
  507.         bkColor:                LONGINT;
  508.         colrBit:                INTEGER;
  509.         patStretch:                INTEGER;
  510.         picSave:                Handle;
  511.         rgnSave:                Handle;
  512.         polySave:                Handle;
  513.         grafProcs:                QDProcsPtr;
  514.     END;
  515.  
  516.     GrafPtr = ^GrafPort;
  517.  
  518. {
  519.  *    This set of definitions "belongs" in Windows.
  520.  *    But, there is a circularity in the headers where Windows includes Controls and
  521.  *    Controls includes Windows. To break the circle, the information
  522.  *    needed by Controls is moved from Windows to Quickdraw.
  523.  }
  524.     WindowPtr = GrafPtr;
  525.  
  526.     WindowRef = WindowPtr;
  527.  
  528.     DragConstraint = UInt16;
  529.  
  530.  
  531. CONST
  532.     kNoConstraint                = 0;
  533.     kVerticalConstraint            = 1;
  534.     kHorizontalConstraint        = 2;
  535.  
  536. {
  537.  *    Here ends the list of things that "belong" in Windows.
  538.  }
  539.  
  540. TYPE
  541.     RGBColor = RECORD
  542.         red:                    INTEGER;                                {magnitude of red component}
  543.         green:                    INTEGER;                                {magnitude of green component}
  544.         blue:                    INTEGER;                                {magnitude of blue component}
  545.     END;
  546.  
  547.     RGBColorPtr = ^RGBColor;
  548.     RGBColorHdl = ^RGBColorPtr;
  549.  
  550.     DragGrayRgnProcPtr = ProcPtr;  { PROCEDURE DragGrayRgn; }
  551.     ColorSearchProcPtr = ProcPtr;  { FUNCTION ColorSearch(VAR rgb: RGBColor; VAR position: LONGINT): BOOLEAN; }
  552.     ColorComplementProcPtr = ProcPtr;  { FUNCTION ColorComplement(VAR rgb: RGBColor): BOOLEAN; }
  553.     DragGrayRgnUPP = UniversalProcPtr;
  554.     ColorSearchUPP = UniversalProcPtr;
  555.     ColorComplementUPP = UniversalProcPtr;
  556.  
  557. CONST
  558.     uppDragGrayRgnProcInfo = $00000000; { PROCEDURE ; }
  559.     uppColorSearchProcInfo = $000003D0; { FUNCTION (4 byte param, 4 byte param): 1 byte result; }
  560.     uppColorComplementProcInfo = $000000D0; { FUNCTION (4 byte param): 1 byte result; }
  561.  
  562. FUNCTION NewDragGrayRgnProc(userRoutine: DragGrayRgnProcPtr): DragGrayRgnUPP;
  563.     {$IFC NOT GENERATINGCFM }
  564.     INLINE $2E9F;
  565.     {$ENDC}
  566.  
  567. FUNCTION NewColorSearchProc(userRoutine: ColorSearchProcPtr): ColorSearchUPP;
  568.     {$IFC NOT GENERATINGCFM }
  569.     INLINE $2E9F;
  570.     {$ENDC}
  571.  
  572. FUNCTION NewColorComplementProc(userRoutine: ColorComplementProcPtr): ColorComplementUPP;
  573.     {$IFC NOT GENERATINGCFM }
  574.     INLINE $2E9F;
  575.     {$ENDC}
  576.  
  577. PROCEDURE CallDragGrayRgnProc(userRoutine: DragGrayRgnUPP);
  578.     {$IFC NOT GENERATINGCFM}
  579.     INLINE $205F, $4E90;
  580.     {$ENDC}
  581.  
  582. FUNCTION CallColorSearchProc(VAR rgb: RGBColor; VAR position: LONGINT; userRoutine: ColorSearchUPP): BOOLEAN;
  583.     {$IFC NOT GENERATINGCFM}
  584.     INLINE $205F, $4E90;
  585.     {$ENDC}
  586.  
  587. FUNCTION CallColorComplementProc(VAR rgb: RGBColor; userRoutine: ColorComplementUPP): BOOLEAN;
  588.     {$IFC NOT GENERATINGCFM}
  589.     INLINE $205F, $4E90;
  590.     {$ENDC}
  591.  
  592. TYPE
  593.     ColorSpec = RECORD
  594.         value:                    INTEGER;                                {index or other value}
  595.         rgb:                    RGBColor;                                {true color}
  596.     END;
  597.  
  598.     ColorSpecPtr = ^ColorSpec;
  599.  
  600.     CSpecArray = ARRAY [0..0] OF ColorSpec;
  601.  
  602.     xColorSpec = RECORD
  603.         value:                    INTEGER;                                {index or other value}
  604.         rgb:                    RGBColor;                                {true color}
  605.         xalpha:                    INTEGER;
  606.     END;
  607.  
  608.     xColorSpecPtr = ^xColorSpec;
  609.  
  610.     xCSpecArray = ARRAY [0..0] OF xColorSpec;
  611.  
  612.     ColorTable = RECORD
  613.         ctSeed:                    LONGINT;                                {unique identifier for table}
  614.         ctFlags:                INTEGER;                                {high bit: 0 = PixMap; 1 = device}
  615.         ctSize:                    INTEGER;                                {number of entries in CTTable}
  616.         ctTable:                CSpecArray;                                {array [0..0] of ColorSpec}
  617.     END;
  618.  
  619.     CTabPtr = ^ColorTable;
  620.     CTabHandle = ^CTabPtr;
  621.  
  622.     MatchRec = RECORD
  623.         red:                    INTEGER;
  624.         green:                    INTEGER;
  625.         blue:                    INTEGER;
  626.         matchData:                LONGINT;
  627.     END;
  628.  
  629.     PixMap = RECORD
  630.         baseAddr:                Ptr;                                    {pointer to pixels}
  631.         rowBytes:                INTEGER;                                {offset to next line}
  632.         bounds:                    Rect;                                    {encloses bitmap}
  633.         pmVersion:                INTEGER;                                {pixMap version number}
  634.         packType:                INTEGER;                                {defines packing format}
  635.         packSize:                LONGINT;                                {length of pixel data}
  636.         hRes:                    Fixed;                                    {horiz. resolution (ppi)}
  637.         vRes:                    Fixed;                                    {vert. resolution (ppi)}
  638.         pixelType:                INTEGER;                                {defines pixel type}
  639.         pixelSize:                INTEGER;                                {# bits in pixel}
  640.         cmpCount:                INTEGER;                                {# components in pixel}
  641.         cmpSize:                INTEGER;                                {# bits per component}
  642.         planeBytes:                LONGINT;                                {offset to next plane}
  643.         pmTable:                CTabHandle;                                {color map for this pixMap}
  644.         pmReserved:                LONGINT;                                {for future use. MUST BE 0}
  645.     END;
  646.  
  647.     PixMapPtr = ^PixMap;
  648.     PixMapHandle = ^PixMapPtr;
  649.  
  650.     PixPat = RECORD
  651.         patType:                INTEGER;                                {type of pattern}
  652.         patMap:                    PixMapHandle;                            {the pattern's pixMap}
  653.         patData:                Handle;                                    {pixmap's data}
  654.         patXData:                Handle;                                    {expanded Pattern data}
  655.         patXValid:                INTEGER;                                {flags whether expanded Pattern valid}
  656.         patXMap:                Handle;                                    {Handle to expanded Pattern data}
  657.         pat1Data:                Pattern;                                {old-Style pattern/RGB color}
  658.     END;
  659.  
  660.     PixPatPtr = ^PixPat;
  661.     PixPatHandle = ^PixPatPtr;
  662.  
  663.     CCrsr = RECORD
  664.         crsrType:                INTEGER;                                {type of cursor}
  665.         crsrMap:                PixMapHandle;                            {the cursor's pixmap}
  666.         crsrData:                Handle;                                    {cursor's data}
  667.         crsrXData:                Handle;                                    {expanded cursor data}
  668.         crsrXValid:                INTEGER;                                {depth of expanded data (0 if none)}
  669.         crsrXHandle:            Handle;                                    {future use}
  670.         crsr1Data:                Bits16;                                    {one-bit cursor}
  671.         crsrMask:                Bits16;                                    {cursor's mask}
  672.         crsrHotSpot:            Point;                                    {cursor's hotspot}
  673.         crsrXTable:                LONGINT;                                {private}
  674.         crsrID:                    LONGINT;                                {private}
  675.     END;
  676.  
  677.     CCrsrPtr = ^CCrsr;
  678.     CCrsrHandle = ^CCrsrPtr;
  679.  
  680. {$IFC OLDROUTINELOCATIONS }
  681.     CIcon = RECORD
  682.         iconPMap:                PixMap;                                    {the icon's pixMap}
  683.         iconMask:                BitMap;                                    {the icon's mask}
  684.         iconBMap:                BitMap;                                    {the icon's bitMap}
  685.         iconData:                Handle;                                    {the icon's data}
  686.         iconMaskData:            ARRAY [0..0] OF INTEGER;                {icon's mask and BitMap data}
  687.     END;
  688.  
  689.     CIconPtr = ^CIcon;
  690.     CIconHandle = ^CIconPtr;
  691.  
  692. {$ENDC}
  693.     GammaTbl = RECORD
  694.         gVersion:                INTEGER;                                {gamma version number}
  695.         gType:                    INTEGER;                                {gamma data type}
  696.         gFormulaSize:            INTEGER;                                {Formula data size}
  697.         gChanCnt:                INTEGER;                                {number of channels of data}
  698.         gDataCnt:                INTEGER;                                {number of values/channel}
  699.         gDataWidth:                INTEGER;                                {bits/corrected value (data packed to next larger byte size)}
  700.         gFormulaData:            ARRAY [0..0] OF INTEGER;                {data for formulas followed by gamma values}
  701.     END;
  702.  
  703.     GammaTblPtr = ^GammaTbl;
  704.     GammaTblHandle = ^GammaTblPtr;
  705.  
  706.     ITab = RECORD
  707.         iTabSeed:                LONGINT;                                {copy of CTSeed from source CTable}
  708.         iTabRes:                INTEGER;                                {bits/channel resolution of iTable}
  709.         iTTable:                ARRAY [0..0] OF SInt8; (* Byte *)        {byte colortable index values}
  710.     END;
  711.  
  712.     ITabPtr = ^ITab;
  713.     ITabHandle = ^ITabPtr;
  714.  
  715.     SProcRec = RECORD
  716.         nxtSrch:                Handle;                                    {SProcHndl Handle to next SProcRec}
  717.         srchProc:                ColorSearchUPP;                            {search procedure proc ptr}
  718.     END;
  719.  
  720.     SProcPtr = ^SProcRec;
  721.     SProcHndl = ^SProcPtr;
  722.  
  723.     CProcRec = RECORD
  724.         nxtComp:                Handle;                                    {CProcHndl Handle to next CProcRec}
  725.         compProc:                ColorComplementUPP;                        {complement procedure proc ptr}
  726.     END;
  727.  
  728.     CProcPtr = ^CProcRec;
  729.     CProcHndl = ^CProcPtr;
  730.  
  731.     GDevice = RECORD
  732.         gdRefNum:                INTEGER;                                {driver's unit number}
  733.         gdID:                    INTEGER;                                {client ID for search procs}
  734.         gdType:                    INTEGER;                                {fixed/CLUT/direct}
  735.         gdITable:                ITabHandle;                                {Handle to inverse lookup table}
  736.         gdResPref:                INTEGER;                                {preferred resolution of GDITable}
  737.         gdSearchProc:            SProcHndl;                                {search proc list head}
  738.         gdCompProc:                CProcHndl;                                {complement proc list}
  739.         gdFlags:                INTEGER;                                {grafDevice flags word}
  740.         gdPMap:                    PixMapHandle;                            {describing pixMap}
  741.         gdRefCon:                LONGINT;                                {reference value}
  742.         gdNextGD:                Handle;                                    {GDHandle Handle of next gDevice}
  743.         gdRect:                    Rect;                                    { device's bounds in global coordinates}
  744.         gdMode:                    LONGINT;                                {device's current mode}
  745.         gdCCBytes:                INTEGER;                                {depth of expanded cursor data}
  746.         gdCCDepth:                INTEGER;                                {depth of expanded cursor data}
  747.         gdCCXData:                Handle;                                    {Handle to cursor's expanded data}
  748.         gdCCXMask:                Handle;                                    {Handle to cursor's expanded mask}
  749.         gdReserved:                LONGINT;                                {future use. MUST BE 0}
  750.     END;
  751.  
  752.     GDPtr = ^GDevice;
  753.     GDHandle = ^GDPtr;
  754.  
  755.     GrafVars = RECORD
  756.         rgbOpColor:                RGBColor;                                {color for addPin  subPin and average}
  757.         rgbHiliteColor:            RGBColor;                                {color for hiliting}
  758.         pmFgColor:                Handle;                                    {palette Handle for foreground color}
  759.         pmFgIndex:                INTEGER;                                {index value for foreground}
  760.         pmBkColor:                Handle;                                    {palette Handle for background color}
  761.         pmBkIndex:                INTEGER;                                {index value for background}
  762.         pmFlags:                INTEGER;                                {flags for Palette Manager}
  763.     END;
  764.  
  765.     GVarPtr = ^GrafVars;
  766.     GVarHandle = ^GVarPtr;
  767.  
  768.     CQDProcs = RECORD
  769.         textProc:                QDTextUPP;
  770.         lineProc:                QDLineUPP;
  771.         rectProc:                QDRectUPP;
  772.         rRectProc:                QDRRectUPP;
  773.         ovalProc:                QDOvalUPP;
  774.         arcProc:                QDArcUPP;
  775.         polyProc:                QDPolyUPP;
  776.         rgnProc:                QDRgnUPP;
  777.         bitsProc:                QDBitsUPP;
  778.         commentProc:            QDCommentUPP;
  779.         txMeasProc:                QDTxMeasUPP;
  780.         getPicProc:                QDGetPicUPP;
  781.         putPicProc:                QDPutPicUPP;
  782.         opcodeProc:                QDOpcodeUPP;                            {fields added to QDProcs}
  783.         newProc1:                UniversalProcPtr;
  784.         newProc2:                UniversalProcPtr;
  785.         newProc3:                UniversalProcPtr;
  786.         newProc4:                UniversalProcPtr;
  787.         newProc5:                UniversalProcPtr;
  788.         newProc6:                UniversalProcPtr;
  789.     END;
  790.  
  791.     CQDProcsPtr = ^CQDProcs;
  792.  
  793.     CGrafPort = RECORD
  794.         device:                    INTEGER;
  795.         portPixMap:                PixMapHandle;                            {port's pixel map}
  796.         portVersion:            INTEGER;                                {high 2 bits always set}
  797.         grafVars:                Handle;                                    {Handle to more fields}
  798.         chExtra:                INTEGER;                                {character extra}
  799.         pnLocHFrac:                INTEGER;                                {pen fraction}
  800.         portRect:                Rect;
  801.         visRgn:                    RgnHandle;
  802.         clipRgn:                RgnHandle;
  803.         bkPixPat:                PixPatHandle;                            {background pattern}
  804.         rgbFgColor:                RGBColor;                                {RGB components of fg}
  805.         rgbBkColor:                RGBColor;                                {RGB components of bk}
  806.         pnLoc:                    Point;
  807.         pnSize:                    Point;
  808.         pnMode:                    INTEGER;
  809.         pnPixPat:                PixPatHandle;                            {pen's pattern}
  810.         fillPixPat:                PixPatHandle;                            {fill pattern}
  811.         pnVis:                    INTEGER;
  812.         txFont:                    INTEGER;
  813.         txFace:                    Style;                                    {txFace is unpacked byte  push as short}
  814.         txMode:                    INTEGER;
  815.         txSize:                    INTEGER;
  816.         spExtra:                Fixed;
  817.         fgColor:                LONGINT;
  818.         bkColor:                LONGINT;
  819.         colrBit:                INTEGER;
  820.         patStretch:                INTEGER;
  821.         picSave:                Handle;
  822.         rgnSave:                Handle;
  823.         polySave:                Handle;
  824.         grafProcs:                CQDProcsPtr;
  825.     END;
  826.  
  827.     CGrafPtr = ^CGrafPort;
  828.  
  829.     CWindowPtr = CGrafPtr;
  830.  
  831.     ReqListRec = RECORD
  832.         reqLSize:                INTEGER;                                {request list size}
  833.         reqLData:                ARRAY [0..0] OF INTEGER;                {request list data}
  834.     END;
  835.  
  836.     OpenCPicParams = RECORD
  837.         srcRect:                Rect;
  838.         hRes:                    Fixed;
  839.         vRes:                    Fixed;
  840.         version:                INTEGER;
  841.         reserved1:                INTEGER;
  842.         reserved2:                LONGINT;
  843.     END;
  844.  
  845.  
  846. CONST
  847.     kCursorImageMajorVersion    = $0001;
  848.     kCursorImageMinorVersion    = $0000;
  849.  
  850.  
  851. TYPE
  852.     CursorImageRec = RECORD
  853.         majorVersion:            UInt16;
  854.         minorVersion:            UInt16;
  855.         cursorPixMap:            PixMapHandle;
  856.         cursorBitMask:            BitMapHandle;
  857.     END;
  858.  
  859.     CursorImagePtr = ^CursorImageRec;
  860.  
  861.     DeviceLoopDrawingProcPtr = ProcPtr;  { PROCEDURE DeviceLoopDrawing(depth: INTEGER; deviceFlags: INTEGER; targetDevice: GDHandle; userData: LONGINT); }
  862.     DeviceLoopDrawingUPP = UniversalProcPtr;
  863.  
  864. CONST
  865.     uppDeviceLoopDrawingProcInfo = $00003E80; { PROCEDURE (2 byte param, 2 byte param, 4 byte param, 4 byte param); }
  866.  
  867. FUNCTION NewDeviceLoopDrawingProc(userRoutine: DeviceLoopDrawingProcPtr): DeviceLoopDrawingUPP;
  868.     {$IFC NOT GENERATINGCFM }
  869.     INLINE $2E9F;
  870.     {$ENDC}
  871.  
  872. PROCEDURE CallDeviceLoopDrawingProc(depth: INTEGER; deviceFlags: INTEGER; targetDevice: GDHandle; userData: LONGINT; userRoutine: DeviceLoopDrawingUPP);
  873.     {$IFC NOT GENERATINGCFM}
  874.     INLINE $205F, $4E90;
  875.     {$ENDC}
  876.  
  877. TYPE
  878.     QDGlobals = RECORD
  879.         privates:                PACKED ARRAY [0..75] OF CHAR;
  880.         randSeed:                LONGINT;
  881.         screenBits:                BitMap;
  882.         arrow:                    Cursor;
  883.         dkGray:                    Pattern;
  884.         ltGray:                    Pattern;
  885.         gray:                    Pattern;
  886.         black:                    Pattern;
  887.         white:                    Pattern;
  888.         thePort:                GrafPtr;
  889.     END;
  890.  
  891.     QDGlobalsPtr = ^QDGlobals;
  892.     QDGlobalsHdl = ^QDGlobalsPtr;
  893.  
  894.  
  895. { To be in sync with the C interface to QuickDraw globals, pascal code must now }
  896. { qualify the QuickDraw globals with “qd.” (e.g. InitGraf(@qd.thePort);  )       }
  897. VAR
  898.     {$PUSH}
  899.     {$J+}
  900.     qd: QDGlobals;
  901.     {$POP}
  902.  
  903. PROCEDURE InitGraf(globalPtr: UNIV Ptr);
  904.     {$IFC NOT GENERATINGCFM}
  905.     INLINE $A86E;
  906.     {$ENDC}
  907. PROCEDURE OpenPort(port: GrafPtr);
  908.     {$IFC NOT GENERATINGCFM}
  909.     INLINE $A86F;
  910.     {$ENDC}
  911. PROCEDURE InitPort(port: GrafPtr);
  912.     {$IFC NOT GENERATINGCFM}
  913.     INLINE $A86D;
  914.     {$ENDC}
  915. PROCEDURE ClosePort(port: GrafPtr);
  916.     {$IFC NOT GENERATINGCFM}
  917.     INLINE $A87D;
  918.     {$ENDC}
  919. PROCEDURE SetPort(port: GrafPtr);
  920.     {$IFC NOT GENERATINGCFM}
  921.     INLINE $A873;
  922.     {$ENDC}
  923. PROCEDURE GetPort(VAR port: GrafPtr);
  924.     {$IFC NOT GENERATINGCFM}
  925.     INLINE $A874;
  926.     {$ENDC}
  927. PROCEDURE GrafDevice(device: INTEGER);
  928.     {$IFC NOT GENERATINGCFM}
  929.     INLINE $A872;
  930.     {$ENDC}
  931. PROCEDURE SetPortBits({CONST}VAR bm: BitMap);
  932.     {$IFC NOT GENERATINGCFM}
  933.     INLINE $A875;
  934.     {$ENDC}
  935. PROCEDURE PortSize(width: INTEGER; height: INTEGER);
  936.     {$IFC NOT GENERATINGCFM}
  937.     INLINE $A876;
  938.     {$ENDC}
  939. PROCEDURE MovePortTo(leftGlobal: INTEGER; topGlobal: INTEGER);
  940.     {$IFC NOT GENERATINGCFM}
  941.     INLINE $A877;
  942.     {$ENDC}
  943. PROCEDURE SetOrigin(h: INTEGER; v: INTEGER);
  944.     {$IFC NOT GENERATINGCFM}
  945.     INLINE $A878;
  946.     {$ENDC}
  947. PROCEDURE SetClip(rgn: RgnHandle);
  948.     {$IFC NOT GENERATINGCFM}
  949.     INLINE $A879;
  950.     {$ENDC}
  951. PROCEDURE GetClip(rgn: RgnHandle);
  952.     {$IFC NOT GENERATINGCFM}
  953.     INLINE $A87A;
  954.     {$ENDC}
  955. PROCEDURE ClipRect({CONST}VAR r: Rect);
  956.     {$IFC NOT GENERATINGCFM}
  957.     INLINE $A87B;
  958.     {$ENDC}
  959. PROCEDURE BackPat({CONST}VAR pat: Pattern);
  960.     {$IFC NOT GENERATINGCFM}
  961.     INLINE $A87C;
  962.     {$ENDC}
  963. PROCEDURE InitCursor;
  964.     {$IFC NOT GENERATINGCFM}
  965.     INLINE $A850;
  966.     {$ENDC}
  967. PROCEDURE SetCursor({CONST}VAR crsr: Cursor);
  968.     {$IFC NOT GENERATINGCFM}
  969.     INLINE $A851;
  970.     {$ENDC}
  971. PROCEDURE HideCursor;
  972.     {$IFC NOT GENERATINGCFM}
  973.     INLINE $A852;
  974.     {$ENDC}
  975. PROCEDURE ShowCursor;
  976.     {$IFC NOT GENERATINGCFM}
  977.     INLINE $A853;
  978.     {$ENDC}
  979. PROCEDURE ObscureCursor;
  980.     {$IFC NOT GENERATINGCFM}
  981.     INLINE $A856;
  982.     {$ENDC}
  983. PROCEDURE HidePen;
  984.     {$IFC NOT GENERATINGCFM}
  985.     INLINE $A896;
  986.     {$ENDC}
  987. PROCEDURE ShowPen;
  988.     {$IFC NOT GENERATINGCFM}
  989.     INLINE $A897;
  990.     {$ENDC}
  991. PROCEDURE GetPen(VAR pt: Point);
  992.     {$IFC NOT GENERATINGCFM}
  993.     INLINE $A89A;
  994.     {$ENDC}
  995. PROCEDURE GetPenState(VAR pnState: PenState);
  996.     {$IFC NOT GENERATINGCFM}
  997.     INLINE $A898;
  998.     {$ENDC}
  999. PROCEDURE SetPenState({CONST}VAR pnState: PenState);
  1000.     {$IFC NOT GENERATINGCFM}
  1001.     INLINE $A899;
  1002.     {$ENDC}
  1003. PROCEDURE PenSize(width: INTEGER; height: INTEGER);
  1004.     {$IFC NOT GENERATINGCFM}
  1005.     INLINE $A89B;
  1006.     {$ENDC}
  1007. PROCEDURE PenMode(mode: INTEGER);
  1008.     {$IFC NOT GENERATINGCFM}
  1009.     INLINE $A89C;
  1010.     {$ENDC}
  1011. PROCEDURE PenPat({CONST}VAR pat: Pattern);
  1012.     {$IFC NOT GENERATINGCFM}
  1013.     INLINE $A89D;
  1014.     {$ENDC}
  1015. PROCEDURE PenNormal;
  1016.     {$IFC NOT GENERATINGCFM}
  1017.     INLINE $A89E;
  1018.     {$ENDC}
  1019. PROCEDURE MoveTo(h: INTEGER; v: INTEGER);
  1020.     {$IFC NOT GENERATINGCFM}
  1021.     INLINE $A893;
  1022.     {$ENDC}
  1023. PROCEDURE Move(dh: INTEGER; dv: INTEGER);
  1024.     {$IFC NOT GENERATINGCFM}
  1025.     INLINE $A894;
  1026.     {$ENDC}
  1027. PROCEDURE LineTo(h: INTEGER; v: INTEGER);
  1028.     {$IFC NOT GENERATINGCFM}
  1029.     INLINE $A891;
  1030.     {$ENDC}
  1031. PROCEDURE Line(dh: INTEGER; dv: INTEGER);
  1032.     {$IFC NOT GENERATINGCFM}
  1033.     INLINE $A892;
  1034.     {$ENDC}
  1035. PROCEDURE ForeColor(color: LONGINT);
  1036.     {$IFC NOT GENERATINGCFM}
  1037.     INLINE $A862;
  1038.     {$ENDC}
  1039. PROCEDURE BackColor(color: LONGINT);
  1040.     {$IFC NOT GENERATINGCFM}
  1041.     INLINE $A863;
  1042.     {$ENDC}
  1043. PROCEDURE ColorBit(whichBit: INTEGER);
  1044.     {$IFC NOT GENERATINGCFM}
  1045.     INLINE $A864;
  1046.     {$ENDC}
  1047. PROCEDURE SetRect(VAR r: Rect; left: INTEGER; top: INTEGER; right: INTEGER; bottom: INTEGER);
  1048.     {$IFC NOT GENERATINGCFM}
  1049.     INLINE $A8A7;
  1050.     {$ENDC}
  1051. PROCEDURE OffsetRect(VAR r: Rect; dh: INTEGER; dv: INTEGER);
  1052.     {$IFC NOT GENERATINGCFM}
  1053.     INLINE $A8A8;
  1054.     {$ENDC}
  1055. PROCEDURE InsetRect(VAR r: Rect; dh: INTEGER; dv: INTEGER);
  1056.     {$IFC NOT GENERATINGCFM}
  1057.     INLINE $A8A9;
  1058.     {$ENDC}
  1059. FUNCTION SectRect({CONST}VAR src1: Rect; {CONST}VAR src2: Rect; VAR dstRect: Rect): BOOLEAN;
  1060.     {$IFC NOT GENERATINGCFM}
  1061.     INLINE $A8AA;
  1062.     {$ENDC}
  1063. PROCEDURE UnionRect({CONST}VAR src1: Rect; {CONST}VAR src2: Rect; VAR dstRect: Rect);
  1064.     {$IFC NOT GENERATINGCFM}
  1065.     INLINE $A8AB;
  1066.     {$ENDC}
  1067. FUNCTION EqualRect({CONST}VAR rect1: Rect; {CONST}VAR rect2: Rect): BOOLEAN;
  1068.     {$IFC NOT GENERATINGCFM}
  1069.     INLINE $A8A6;
  1070.     {$ENDC}
  1071. FUNCTION EmptyRect({CONST}VAR r: Rect): BOOLEAN;
  1072.     {$IFC NOT GENERATINGCFM}
  1073.     INLINE $A8AE;
  1074.     {$ENDC}
  1075. PROCEDURE FrameRect({CONST}VAR r: Rect);
  1076.     {$IFC NOT GENERATINGCFM}
  1077.     INLINE $A8A1;
  1078.     {$ENDC}
  1079. PROCEDURE PaintRect({CONST}VAR r: Rect);
  1080.     {$IFC NOT GENERATINGCFM}
  1081.     INLINE $A8A2;
  1082.     {$ENDC}
  1083. PROCEDURE EraseRect({CONST}VAR r: Rect);
  1084.     {$IFC NOT GENERATINGCFM}
  1085.     INLINE $A8A3;
  1086.     {$ENDC}
  1087. PROCEDURE InvertRect({CONST}VAR r: Rect);
  1088.     {$IFC NOT GENERATINGCFM}
  1089.     INLINE $A8A4;
  1090.     {$ENDC}
  1091. PROCEDURE FillRect({CONST}VAR r: Rect; {CONST}VAR pat: Pattern);
  1092.     {$IFC NOT GENERATINGCFM}
  1093.     INLINE $A8A5;
  1094.     {$ENDC}
  1095. PROCEDURE FrameOval({CONST}VAR r: Rect);
  1096.     {$IFC NOT GENERATINGCFM}
  1097.     INLINE $A8B7;
  1098.     {$ENDC}
  1099. PROCEDURE PaintOval({CONST}VAR r: Rect);
  1100.     {$IFC NOT GENERATINGCFM}
  1101.     INLINE $A8B8;
  1102.     {$ENDC}
  1103. PROCEDURE EraseOval({CONST}VAR r: Rect);
  1104.     {$IFC NOT GENERATINGCFM}
  1105.     INLINE $A8B9;
  1106.     {$ENDC}
  1107. PROCEDURE InvertOval({CONST}VAR r: Rect);
  1108.     {$IFC NOT GENERATINGCFM}
  1109.     INLINE $A8BA;
  1110.     {$ENDC}
  1111. PROCEDURE FillOval({CONST}VAR r: Rect; {CONST}VAR pat: Pattern);
  1112.     {$IFC NOT GENERATINGCFM}
  1113.     INLINE $A8BB;
  1114.     {$ENDC}
  1115. PROCEDURE FrameRoundRect({CONST}VAR r: Rect; ovalWidth: INTEGER; ovalHeight: INTEGER);
  1116.     {$IFC NOT GENERATINGCFM}
  1117.     INLINE $A8B0;
  1118.     {$ENDC}
  1119. PROCEDURE PaintRoundRect({CONST}VAR r: Rect; ovalWidth: INTEGER; ovalHeight: INTEGER);
  1120.     {$IFC NOT GENERATINGCFM}
  1121.     INLINE $A8B1;
  1122.     {$ENDC}
  1123. PROCEDURE EraseRoundRect({CONST}VAR r: Rect; ovalWidth: INTEGER; ovalHeight: INTEGER);
  1124.     {$IFC NOT GENERATINGCFM}
  1125.     INLINE $A8B2;
  1126.     {$ENDC}
  1127. PROCEDURE InvertRoundRect({CONST}VAR r: Rect; ovalWidth: INTEGER; ovalHeight: INTEGER);
  1128.     {$IFC NOT GENERATINGCFM}
  1129.     INLINE $A8B3;
  1130.     {$ENDC}
  1131. PROCEDURE FillRoundRect({CONST}VAR r: Rect; ovalWidth: INTEGER; ovalHeight: INTEGER; {CONST}VAR pat: Pattern);
  1132.     {$IFC NOT GENERATINGCFM}
  1133.     INLINE $A8B4;
  1134.     {$ENDC}
  1135. PROCEDURE FrameArc({CONST}VAR r: Rect; startAngle: INTEGER; arcAngle: INTEGER);
  1136.     {$IFC NOT GENERATINGCFM}
  1137.     INLINE $A8BE;
  1138.     {$ENDC}
  1139. PROCEDURE PaintArc({CONST}VAR r: Rect; startAngle: INTEGER; arcAngle: INTEGER);
  1140.     {$IFC NOT GENERATINGCFM}
  1141.     INLINE $A8BF;
  1142.     {$ENDC}
  1143. PROCEDURE EraseArc({CONST}VAR r: Rect; startAngle: INTEGER; arcAngle: INTEGER);
  1144.     {$IFC NOT GENERATINGCFM}
  1145.     INLINE $A8C0;
  1146.     {$ENDC}
  1147. PROCEDURE InvertArc({CONST}VAR r: Rect; startAngle: INTEGER; arcAngle: INTEGER);
  1148.     {$IFC NOT GENERATINGCFM}
  1149.     INLINE $A8C1;
  1150.     {$ENDC}
  1151. PROCEDURE FillArc({CONST}VAR r: Rect; startAngle: INTEGER; arcAngle: INTEGER; {CONST}VAR pat: Pattern);
  1152.     {$IFC NOT GENERATINGCFM}
  1153.     INLINE $A8C2;
  1154.     {$ENDC}
  1155. FUNCTION NewRgn: RgnHandle;
  1156.     {$IFC NOT GENERATINGCFM}
  1157.     INLINE $A8D8;
  1158.     {$ENDC}
  1159. PROCEDURE OpenRgn;
  1160.     {$IFC NOT GENERATINGCFM}
  1161.     INLINE $A8DA;
  1162.     {$ENDC}
  1163. PROCEDURE CloseRgn(dstRgn: RgnHandle);
  1164.     {$IFC NOT GENERATINGCFM}
  1165.     INLINE $A8DB;
  1166.     {$ENDC}
  1167. {$IFC NOT SystemSevenOrLater }
  1168. FUNCTION BitMapToRegionGlue(region: RgnHandle; {CONST}VAR bMap: BitMap): OSErr;
  1169. {$ENDC}
  1170. FUNCTION BitMapToRegion(region: RgnHandle; {CONST}VAR bMap: BitMap): OSErr;
  1171.     {$IFC NOT GENERATINGCFM}
  1172.     INLINE $A8D7;
  1173.     {$ENDC}
  1174. PROCEDURE DisposeRgn(rgn: RgnHandle);
  1175.     {$IFC NOT GENERATINGCFM}
  1176.     INLINE $A8D9;
  1177.     {$ENDC}
  1178. PROCEDURE CopyRgn(srcRgn: RgnHandle; dstRgn: RgnHandle);
  1179.     {$IFC NOT GENERATINGCFM}
  1180.     INLINE $A8DC;
  1181.     {$ENDC}
  1182. PROCEDURE SetEmptyRgn(rgn: RgnHandle);
  1183.     {$IFC NOT GENERATINGCFM}
  1184.     INLINE $A8DD;
  1185.     {$ENDC}
  1186. PROCEDURE SetRectRgn(rgn: RgnHandle; left: INTEGER; top: INTEGER; right: INTEGER; bottom: INTEGER);
  1187.     {$IFC NOT GENERATINGCFM}
  1188.     INLINE $A8DE;
  1189.     {$ENDC}
  1190. PROCEDURE RectRgn(rgn: RgnHandle; {CONST}VAR r: Rect);
  1191.     {$IFC NOT GENERATINGCFM}
  1192.     INLINE $A8DF;
  1193.     {$ENDC}
  1194. PROCEDURE OffsetRgn(rgn: RgnHandle; dh: INTEGER; dv: INTEGER);
  1195.     {$IFC NOT GENERATINGCFM}
  1196.     INLINE $A8E0;
  1197.     {$ENDC}
  1198. PROCEDURE InsetRgn(rgn: RgnHandle; dh: INTEGER; dv: INTEGER);
  1199.     {$IFC NOT GENERATINGCFM}
  1200.     INLINE $A8E1;
  1201.     {$ENDC}
  1202. PROCEDURE SectRgn(srcRgnA: RgnHandle; srcRgnB: RgnHandle; dstRgn: RgnHandle);
  1203.     {$IFC NOT GENERATINGCFM}
  1204.     INLINE $A8E4;
  1205.     {$ENDC}
  1206. PROCEDURE UnionRgn(srcRgnA: RgnHandle; srcRgnB: RgnHandle; dstRgn: RgnHandle);
  1207.     {$IFC NOT GENERATINGCFM}
  1208.     INLINE $A8E5;
  1209.     {$ENDC}
  1210. PROCEDURE DiffRgn(srcRgnA: RgnHandle; srcRgnB: RgnHandle; dstRgn: RgnHandle);
  1211.     {$IFC NOT GENERATINGCFM}
  1212.     INLINE $A8E6;
  1213.     {$ENDC}
  1214. PROCEDURE XorRgn(srcRgnA: RgnHandle; srcRgnB: RgnHandle; dstRgn: RgnHandle);
  1215.     {$IFC NOT GENERATINGCFM}
  1216.     INLINE $A8E7;
  1217.     {$ENDC}
  1218. FUNCTION RectInRgn({CONST}VAR r: Rect; rgn: RgnHandle): BOOLEAN;
  1219.     {$IFC NOT GENERATINGCFM}
  1220.     INLINE $A8E9;
  1221.     {$ENDC}
  1222. FUNCTION EqualRgn(rgnA: RgnHandle; rgnB: RgnHandle): BOOLEAN;
  1223.     {$IFC NOT GENERATINGCFM}
  1224.     INLINE $A8E3;
  1225.     {$ENDC}
  1226. FUNCTION EmptyRgn(rgn: RgnHandle): BOOLEAN;
  1227.     {$IFC NOT GENERATINGCFM}
  1228.     INLINE $A8E2;
  1229.     {$ENDC}
  1230. PROCEDURE FrameRgn(rgn: RgnHandle);
  1231.     {$IFC NOT GENERATINGCFM}
  1232.     INLINE $A8D2;
  1233.     {$ENDC}
  1234. PROCEDURE PaintRgn(rgn: RgnHandle);
  1235.     {$IFC NOT GENERATINGCFM}
  1236.     INLINE $A8D3;
  1237.     {$ENDC}
  1238. PROCEDURE EraseRgn(rgn: RgnHandle);
  1239.     {$IFC NOT GENERATINGCFM}
  1240.     INLINE $A8D4;
  1241.     {$ENDC}
  1242. PROCEDURE InvertRgn(rgn: RgnHandle);
  1243.     {$IFC NOT GENERATINGCFM}
  1244.     INLINE $A8D5;
  1245.     {$ENDC}
  1246. PROCEDURE FillRgn(rgn: RgnHandle; {CONST}VAR pat: Pattern);
  1247.     {$IFC NOT GENERATINGCFM}
  1248.     INLINE $A8D6;
  1249.     {$ENDC}
  1250. PROCEDURE ScrollRect({CONST}VAR r: Rect; dh: INTEGER; dv: INTEGER; updateRgn: RgnHandle);
  1251.     {$IFC NOT GENERATINGCFM}
  1252.     INLINE $A8EF;
  1253.     {$ENDC}
  1254. PROCEDURE CopyBits({CONST}VAR srcBits: BitMap; {CONST}VAR dstBits: BitMap; {CONST}VAR srcRect: Rect; {CONST}VAR dstRect: Rect; mode: INTEGER; maskRgn: RgnHandle);
  1255.     {$IFC NOT GENERATINGCFM}
  1256.     INLINE $A8EC;
  1257.     {$ENDC}
  1258. PROCEDURE SeedFill(srcPtr: UNIV Ptr; dstPtr: UNIV Ptr; srcRow: INTEGER; dstRow: INTEGER; height: INTEGER; words: INTEGER; seedH: INTEGER; seedV: INTEGER);
  1259.     {$IFC NOT GENERATINGCFM}
  1260.     INLINE $A839;
  1261.     {$ENDC}
  1262. PROCEDURE CalcMask(srcPtr: UNIV Ptr; dstPtr: UNIV Ptr; srcRow: INTEGER; dstRow: INTEGER; height: INTEGER; words: INTEGER);
  1263.     {$IFC NOT GENERATINGCFM}
  1264.     INLINE $A838;
  1265.     {$ENDC}
  1266. PROCEDURE CopyMask({CONST}VAR srcBits: BitMap; {CONST}VAR maskBits: BitMap; {CONST}VAR dstBits: BitMap; {CONST}VAR srcRect: Rect; {CONST}VAR maskRect: Rect; {CONST}VAR dstRect: Rect);
  1267.     {$IFC NOT GENERATINGCFM}
  1268.     INLINE $A817;
  1269.     {$ENDC}
  1270. FUNCTION OpenPicture({CONST}VAR picFrame: Rect): PicHandle;
  1271.     {$IFC NOT GENERATINGCFM}
  1272.     INLINE $A8F3;
  1273.     {$ENDC}
  1274. PROCEDURE PicComment(kind: INTEGER; dataSize: INTEGER; dataHandle: Handle);
  1275.     {$IFC NOT GENERATINGCFM}
  1276.     INLINE $A8F2;
  1277.     {$ENDC}
  1278. PROCEDURE ClosePicture;
  1279.     {$IFC NOT GENERATINGCFM}
  1280.     INLINE $A8F4;
  1281.     {$ENDC}
  1282. PROCEDURE DrawPicture(myPicture: PicHandle; {CONST}VAR dstRect: Rect);
  1283.     {$IFC NOT GENERATINGCFM}
  1284.     INLINE $A8F6;
  1285.     {$ENDC}
  1286. PROCEDURE KillPicture(myPicture: PicHandle);
  1287.     {$IFC NOT GENERATINGCFM}
  1288.     INLINE $A8F5;
  1289.     {$ENDC}
  1290. FUNCTION OpenPoly: PolyHandle;
  1291.     {$IFC NOT GENERATINGCFM}
  1292.     INLINE $A8CB;
  1293.     {$ENDC}
  1294. PROCEDURE ClosePoly;
  1295.     {$IFC NOT GENERATINGCFM}
  1296.     INLINE $A8CC;
  1297.     {$ENDC}
  1298. PROCEDURE KillPoly(poly: PolyHandle);
  1299.     {$IFC NOT GENERATINGCFM}
  1300.     INLINE $A8CD;
  1301.     {$ENDC}
  1302. PROCEDURE OffsetPoly(poly: PolyHandle; dh: INTEGER; dv: INTEGER);
  1303.     {$IFC NOT GENERATINGCFM}
  1304.     INLINE $A8CE;
  1305.     {$ENDC}
  1306. PROCEDURE FramePoly(poly: PolyHandle);
  1307.     {$IFC NOT GENERATINGCFM}
  1308.     INLINE $A8C6;
  1309.     {$ENDC}
  1310. PROCEDURE PaintPoly(poly: PolyHandle);
  1311.     {$IFC NOT GENERATINGCFM}
  1312.     INLINE $A8C7;
  1313.     {$ENDC}
  1314. PROCEDURE ErasePoly(poly: PolyHandle);
  1315.     {$IFC NOT GENERATINGCFM}
  1316.     INLINE $A8C8;
  1317.     {$ENDC}
  1318. PROCEDURE InvertPoly(poly: PolyHandle);
  1319.     {$IFC NOT GENERATINGCFM}
  1320.     INLINE $A8C9;
  1321.     {$ENDC}
  1322. PROCEDURE FillPoly(poly: PolyHandle; {CONST}VAR pat: Pattern);
  1323.     {$IFC NOT GENERATINGCFM}
  1324.     INLINE $A8CA;
  1325.     {$ENDC}
  1326. PROCEDURE SetPt(VAR pt: Point; h: INTEGER; v: INTEGER);
  1327.     {$IFC NOT GENERATINGCFM}
  1328.     INLINE $A880;
  1329.     {$ENDC}
  1330. PROCEDURE LocalToGlobal(VAR pt: Point);
  1331.     {$IFC NOT GENERATINGCFM}
  1332.     INLINE $A870;
  1333.     {$ENDC}
  1334. PROCEDURE GlobalToLocal(VAR pt: Point);
  1335.     {$IFC NOT GENERATINGCFM}
  1336.     INLINE $A871;
  1337.     {$ENDC}
  1338. FUNCTION Random: INTEGER;
  1339.     {$IFC NOT GENERATINGCFM}
  1340.     INLINE $A861;
  1341.     {$ENDC}
  1342. PROCEDURE StuffHex(thingPtr: UNIV Ptr; s: ConstStr255Param);
  1343.     {$IFC NOT GENERATINGCFM}
  1344.     INLINE $A866;
  1345.     {$ENDC}
  1346. FUNCTION GetPixel(h: INTEGER; v: INTEGER): BOOLEAN;
  1347.     {$IFC NOT GENERATINGCFM}
  1348.     INLINE $A865;
  1349.     {$ENDC}
  1350. PROCEDURE ScalePt(VAR pt: Point; {CONST}VAR srcRect: Rect; {CONST}VAR dstRect: Rect);
  1351.     {$IFC NOT GENERATINGCFM}
  1352.     INLINE $A8F8;
  1353.     {$ENDC}
  1354. PROCEDURE MapPt(VAR pt: Point; {CONST}VAR srcRect: Rect; {CONST}VAR dstRect: Rect);
  1355.     {$IFC NOT GENERATINGCFM}
  1356.     INLINE $A8F9;
  1357.     {$ENDC}
  1358. PROCEDURE MapRect(VAR r: Rect; {CONST}VAR srcRect: Rect; {CONST}VAR dstRect: Rect);
  1359.     {$IFC NOT GENERATINGCFM}
  1360.     INLINE $A8FA;
  1361.     {$ENDC}
  1362. PROCEDURE MapRgn(rgn: RgnHandle; {CONST}VAR srcRect: Rect; {CONST}VAR dstRect: Rect);
  1363.     {$IFC NOT GENERATINGCFM}
  1364.     INLINE $A8FB;
  1365.     {$ENDC}
  1366. PROCEDURE MapPoly(poly: PolyHandle; {CONST}VAR srcRect: Rect; {CONST}VAR dstRect: Rect);
  1367.     {$IFC NOT GENERATINGCFM}
  1368.     INLINE $A8FC;
  1369.     {$ENDC}
  1370. PROCEDURE SetStdProcs(VAR procs: QDProcs);
  1371.     {$IFC NOT GENERATINGCFM}
  1372.     INLINE $A8EA;
  1373.     {$ENDC}
  1374. PROCEDURE StdRect(verb: ByteParameter; {CONST}VAR r: Rect);
  1375.     {$IFC NOT GENERATINGCFM}
  1376.     INLINE $A8A0;
  1377.     {$ENDC}
  1378. PROCEDURE StdRRect(verb: ByteParameter; {CONST}VAR r: Rect; ovalWidth: INTEGER; ovalHeight: INTEGER);
  1379.     {$IFC NOT GENERATINGCFM}
  1380.     INLINE $A8AF;
  1381.     {$ENDC}
  1382. PROCEDURE StdOval(verb: ByteParameter; {CONST}VAR r: Rect);
  1383.     {$IFC NOT GENERATINGCFM}
  1384.     INLINE $A8B6;
  1385.     {$ENDC}
  1386. PROCEDURE StdArc(verb: ByteParameter; {CONST}VAR r: Rect; startAngle: INTEGER; arcAngle: INTEGER);
  1387.     {$IFC NOT GENERATINGCFM}
  1388.     INLINE $A8BD;
  1389.     {$ENDC}
  1390. PROCEDURE StdPoly(verb: ByteParameter; poly: PolyHandle);
  1391.     {$IFC NOT GENERATINGCFM}
  1392.     INLINE $A8C5;
  1393.     {$ENDC}
  1394. PROCEDURE StdRgn(verb: ByteParameter; rgn: RgnHandle);
  1395.     {$IFC NOT GENERATINGCFM}
  1396.     INLINE $A8D1;
  1397.     {$ENDC}
  1398. PROCEDURE StdBits({CONST}VAR srcBits: BitMap; {CONST}VAR srcRect: Rect; {CONST}VAR dstRect: Rect; mode: INTEGER; maskRgn: RgnHandle);
  1399.     {$IFC NOT GENERATINGCFM}
  1400.     INLINE $A8EB;
  1401.     {$ENDC}
  1402. PROCEDURE StdComment(kind: INTEGER; dataSize: INTEGER; dataHandle: Handle);
  1403.     {$IFC NOT GENERATINGCFM}
  1404.     INLINE $A8F1;
  1405.     {$ENDC}
  1406. PROCEDURE StdGetPic(dataPtr: UNIV Ptr; byteCount: INTEGER);
  1407.     {$IFC NOT GENERATINGCFM}
  1408.     INLINE $A8EE;
  1409.     {$ENDC}
  1410. PROCEDURE StdPutPic(dataPtr: UNIV Ptr; byteCount: INTEGER);
  1411.     {$IFC NOT GENERATINGCFM}
  1412.     INLINE $A8F0;
  1413.     {$ENDC}
  1414. PROCEDURE AddPt(src: Point; VAR dst: Point);
  1415.     {$IFC NOT GENERATINGCFM}
  1416.     INLINE $A87E;
  1417.     {$ENDC}
  1418. FUNCTION EqualPt(pt1: Point; pt2: Point): BOOLEAN;
  1419.     {$IFC NOT GENERATINGCFM}
  1420.     INLINE $A881;
  1421.     {$ENDC}
  1422. FUNCTION PtInRect(pt: Point; {CONST}VAR r: Rect): BOOLEAN;
  1423.     {$IFC NOT GENERATINGCFM}
  1424.     INLINE $A8AD;
  1425.     {$ENDC}
  1426. PROCEDURE Pt2Rect(pt1: Point; pt2: Point; VAR dstRect: Rect);
  1427.     {$IFC NOT GENERATINGCFM}
  1428.     INLINE $A8AC;
  1429.     {$ENDC}
  1430. PROCEDURE PtToAngle({CONST}VAR r: Rect; pt: Point; VAR angle: INTEGER);
  1431.     {$IFC NOT GENERATINGCFM}
  1432.     INLINE $A8C3;
  1433.     {$ENDC}
  1434. PROCEDURE SubPt(src: Point; VAR dst: Point);
  1435.     {$IFC NOT GENERATINGCFM}
  1436.     INLINE $A87F;
  1437.     {$ENDC}
  1438. FUNCTION PtInRgn(pt: Point; rgn: RgnHandle): BOOLEAN;
  1439.     {$IFC NOT GENERATINGCFM}
  1440.     INLINE $A8E8;
  1441.     {$ENDC}
  1442. PROCEDURE StdLine(newPt: Point);
  1443.     {$IFC NOT GENERATINGCFM}
  1444.     INLINE $A890;
  1445.     {$ENDC}
  1446. PROCEDURE OpenCPort(port: CGrafPtr);
  1447.     {$IFC NOT GENERATINGCFM}
  1448.     INLINE $AA00;
  1449.     {$ENDC}
  1450. PROCEDURE InitCPort(port: CGrafPtr);
  1451.     {$IFC NOT GENERATINGCFM}
  1452.     INLINE $AA01;
  1453.     {$ENDC}
  1454. PROCEDURE CloseCPort(port: CGrafPtr);
  1455.     {$IFC NOT GENERATINGCFM}
  1456.     INLINE $A87D;
  1457.     {$ENDC}
  1458. FUNCTION NewPixMap: PixMapHandle;
  1459.     {$IFC NOT GENERATINGCFM}
  1460.     INLINE $AA03;
  1461.     {$ENDC}
  1462. PROCEDURE DisposePixMap(pm: PixMapHandle);
  1463.     {$IFC NOT GENERATINGCFM}
  1464.     INLINE $AA04;
  1465.     {$ENDC}
  1466. PROCEDURE CopyPixMap(srcPM: PixMapHandle; dstPM: PixMapHandle);
  1467.     {$IFC NOT GENERATINGCFM}
  1468.     INLINE $AA05;
  1469.     {$ENDC}
  1470. FUNCTION NewPixPat: PixPatHandle;
  1471.     {$IFC NOT GENERATINGCFM}
  1472.     INLINE $AA07;
  1473.     {$ENDC}
  1474. PROCEDURE DisposePixPat(pp: PixPatHandle);
  1475.     {$IFC NOT GENERATINGCFM}
  1476.     INLINE $AA08;
  1477.     {$ENDC}
  1478. PROCEDURE CopyPixPat(srcPP: PixPatHandle; dstPP: PixPatHandle);
  1479.     {$IFC NOT GENERATINGCFM}
  1480.     INLINE $AA09;
  1481.     {$ENDC}
  1482. PROCEDURE PenPixPat(pp: PixPatHandle);
  1483.     {$IFC NOT GENERATINGCFM}
  1484.     INLINE $AA0A;
  1485.     {$ENDC}
  1486. PROCEDURE BackPixPat(pp: PixPatHandle);
  1487.     {$IFC NOT GENERATINGCFM}
  1488.     INLINE $AA0B;
  1489.     {$ENDC}
  1490. FUNCTION GetPixPat(patID: INTEGER): PixPatHandle;
  1491.     {$IFC NOT GENERATINGCFM}
  1492.     INLINE $AA0C;
  1493.     {$ENDC}
  1494. PROCEDURE MakeRGBPat(pp: PixPatHandle; {CONST}VAR myColor: RGBColor);
  1495.     {$IFC NOT GENERATINGCFM}
  1496.     INLINE $AA0D;
  1497.     {$ENDC}
  1498. PROCEDURE FillCRect({CONST}VAR r: Rect; pp: PixPatHandle);
  1499.     {$IFC NOT GENERATINGCFM}
  1500.     INLINE $AA0E;
  1501.     {$ENDC}
  1502. PROCEDURE FillCOval({CONST}VAR r: Rect; pp: PixPatHandle);
  1503.     {$IFC NOT GENERATINGCFM}
  1504.     INLINE $AA0F;
  1505.     {$ENDC}
  1506. PROCEDURE FillCRoundRect({CONST}VAR r: Rect; ovalWidth: INTEGER; ovalHeight: INTEGER; pp: PixPatHandle);
  1507.     {$IFC NOT GENERATINGCFM}
  1508.     INLINE $AA10;
  1509.     {$ENDC}
  1510. PROCEDURE FillCArc({CONST}VAR r: Rect; startAngle: INTEGER; arcAngle: INTEGER; pp: PixPatHandle);
  1511.     {$IFC NOT GENERATINGCFM}
  1512.     INLINE $AA11;
  1513.     {$ENDC}
  1514. PROCEDURE FillCRgn(rgn: RgnHandle; pp: PixPatHandle);
  1515.     {$IFC NOT GENERATINGCFM}
  1516.     INLINE $AA12;
  1517.     {$ENDC}
  1518. PROCEDURE FillCPoly(poly: PolyHandle; pp: PixPatHandle);
  1519.     {$IFC NOT GENERATINGCFM}
  1520.     INLINE $AA13;
  1521.     {$ENDC}
  1522. PROCEDURE RGBForeColor({CONST}VAR color: RGBColor);
  1523.     {$IFC NOT GENERATINGCFM}
  1524.     INLINE $AA14;
  1525.     {$ENDC}
  1526. PROCEDURE RGBBackColor({CONST}VAR color: RGBColor);
  1527.     {$IFC NOT GENERATINGCFM}
  1528.     INLINE $AA15;
  1529.     {$ENDC}
  1530. PROCEDURE SetCPixel(h: INTEGER; v: INTEGER; {CONST}VAR cPix: RGBColor);
  1531.     {$IFC NOT GENERATINGCFM}
  1532.     INLINE $AA16;
  1533.     {$ENDC}
  1534. PROCEDURE SetPortPix(pm: PixMapHandle);
  1535.     {$IFC NOT GENERATINGCFM}
  1536.     INLINE $AA06;
  1537.     {$ENDC}
  1538. PROCEDURE GetCPixel(h: INTEGER; v: INTEGER; VAR cPix: RGBColor);
  1539.     {$IFC NOT GENERATINGCFM}
  1540.     INLINE $AA17;
  1541.     {$ENDC}
  1542. PROCEDURE GetForeColor(VAR color: RGBColor);
  1543.     {$IFC NOT GENERATINGCFM}
  1544.     INLINE $AA19;
  1545.     {$ENDC}
  1546. PROCEDURE GetBackColor(VAR color: RGBColor);
  1547.     {$IFC NOT GENERATINGCFM}
  1548.     INLINE $AA1A;
  1549.     {$ENDC}
  1550. PROCEDURE SeedCFill({CONST}VAR srcBits: BitMap; {CONST}VAR dstBits: BitMap; {CONST}VAR srcRect: Rect; {CONST}VAR dstRect: Rect; seedH: INTEGER; seedV: INTEGER; matchProc: ColorSearchUPP; matchData: LONGINT);
  1551.     {$IFC NOT GENERATINGCFM}
  1552.     INLINE $AA50;
  1553.     {$ENDC}
  1554. PROCEDURE CalcCMask({CONST}VAR srcBits: BitMap; {CONST}VAR dstBits: BitMap; {CONST}VAR srcRect: Rect; {CONST}VAR dstRect: Rect; {CONST}VAR seedRGB: RGBColor; matchProc: ColorSearchUPP; matchData: LONGINT);
  1555.     {$IFC NOT GENERATINGCFM}
  1556.     INLINE $AA4F;
  1557.     {$ENDC}
  1558. FUNCTION OpenCPicture({CONST}VAR newHeader: OpenCPicParams): PicHandle;
  1559.     {$IFC NOT GENERATINGCFM}
  1560.     INLINE $AA20;
  1561.     {$ENDC}
  1562. PROCEDURE OpColor({CONST}VAR color: RGBColor);
  1563.     {$IFC NOT GENERATINGCFM}
  1564.     INLINE $AA21;
  1565.     {$ENDC}
  1566. PROCEDURE HiliteColor({CONST}VAR color: RGBColor);
  1567.     {$IFC NOT GENERATINGCFM}
  1568.     INLINE $AA22;
  1569.     {$ENDC}
  1570. PROCEDURE DisposeCTable(cTable: CTabHandle);
  1571.     {$IFC NOT GENERATINGCFM}
  1572.     INLINE $AA24;
  1573.     {$ENDC}
  1574. FUNCTION GetCTable(ctID: INTEGER): CTabHandle;
  1575.     {$IFC NOT GENERATINGCFM}
  1576.     INLINE $AA18;
  1577.     {$ENDC}
  1578. FUNCTION GetCCursor(crsrID: INTEGER): CCrsrHandle;
  1579.     {$IFC NOT GENERATINGCFM}
  1580.     INLINE $AA1B;
  1581.     {$ENDC}
  1582. PROCEDURE SetCCursor(cCrsr: CCrsrHandle);
  1583.     {$IFC NOT GENERATINGCFM}
  1584.     INLINE $AA1C;
  1585.     {$ENDC}
  1586. PROCEDURE AllocCursor;
  1587.     {$IFC NOT GENERATINGCFM}
  1588.     INLINE $AA1D;
  1589.     {$ENDC}
  1590. PROCEDURE DisposeCCursor(cCrsr: CCrsrHandle);
  1591.     {$IFC NOT GENERATINGCFM}
  1592.     INLINE $AA26;
  1593.     {$ENDC}
  1594. {$IFC OLDROUTINELOCATIONS }
  1595. FUNCTION GetCIcon(iconID: INTEGER): CIconHandle;
  1596.     {$IFC NOT GENERATINGCFM}
  1597.     INLINE $AA1E;
  1598.     {$ENDC}
  1599. PROCEDURE PlotCIcon({CONST}VAR theRect: Rect; theIcon: CIconHandle);
  1600.     {$IFC NOT GENERATINGCFM}
  1601.     INLINE $AA1F;
  1602.     {$ENDC}
  1603. PROCEDURE DisposeCIcon(theIcon: CIconHandle);
  1604.     {$IFC NOT GENERATINGCFM}
  1605.     INLINE $AA25;
  1606.     {$ENDC}
  1607. {$ENDC}
  1608. PROCEDURE SetStdCProcs(VAR procs: CQDProcs);
  1609.     {$IFC NOT GENERATINGCFM}
  1610.     INLINE $AA4E;
  1611.     {$ENDC}
  1612. FUNCTION GetMaxDevice({CONST}VAR globalRect: Rect): GDHandle;
  1613.     {$IFC NOT GENERATINGCFM}
  1614.     INLINE $AA27;
  1615.     {$ENDC}
  1616. FUNCTION GetCTSeed: LONGINT;
  1617.     {$IFC NOT GENERATINGCFM}
  1618.     INLINE $AA28;
  1619.     {$ENDC}
  1620. FUNCTION GetDeviceList: GDHandle;
  1621.     {$IFC NOT GENERATINGCFM}
  1622.     INLINE $AA29;
  1623.     {$ENDC}
  1624. FUNCTION GetMainDevice: GDHandle;
  1625.     {$IFC NOT GENERATINGCFM}
  1626.     INLINE $AA2A;
  1627.     {$ENDC}
  1628. FUNCTION GetNextDevice(curDevice: GDHandle): GDHandle;
  1629.     {$IFC NOT GENERATINGCFM}
  1630.     INLINE $AA2B;
  1631.     {$ENDC}
  1632. FUNCTION TestDeviceAttribute(gdh: GDHandle; attribute: INTEGER): BOOLEAN;
  1633.     {$IFC NOT GENERATINGCFM}
  1634.     INLINE $AA2C;
  1635.     {$ENDC}
  1636. PROCEDURE SetDeviceAttribute(gdh: GDHandle; attribute: INTEGER; value: BOOLEAN);
  1637.     {$IFC NOT GENERATINGCFM}
  1638.     INLINE $AA2D;
  1639.     {$ENDC}
  1640. PROCEDURE InitGDevice(qdRefNum: INTEGER; mode: LONGINT; gdh: GDHandle);
  1641.     {$IFC NOT GENERATINGCFM}
  1642.     INLINE $AA2E;
  1643.     {$ENDC}
  1644. FUNCTION NewGDevice(refNum: INTEGER; mode: LONGINT): GDHandle;
  1645.     {$IFC NOT GENERATINGCFM}
  1646.     INLINE $AA2F;
  1647.     {$ENDC}
  1648. PROCEDURE DisposeGDevice(gdh: GDHandle);
  1649.     {$IFC NOT GENERATINGCFM}
  1650.     INLINE $AA30;
  1651.     {$ENDC}
  1652. PROCEDURE SetGDevice(gd: GDHandle);
  1653.     {$IFC NOT GENERATINGCFM}
  1654.     INLINE $AA31;
  1655.     {$ENDC}
  1656. FUNCTION GetGDevice: GDHandle;
  1657.     {$IFC NOT GENERATINGCFM}
  1658.     INLINE $AA32;
  1659.     {$ENDC}
  1660. FUNCTION Color2Index({CONST}VAR myColor: RGBColor): LONGINT;
  1661.     {$IFC NOT GENERATINGCFM}
  1662.     INLINE $AA33;
  1663.     {$ENDC}
  1664. PROCEDURE Index2Color(index: LONGINT; VAR aColor: RGBColor);
  1665.     {$IFC NOT GENERATINGCFM}
  1666.     INLINE $AA34;
  1667.     {$ENDC}
  1668. PROCEDURE InvertColor(VAR myColor: RGBColor);
  1669.     {$IFC NOT GENERATINGCFM}
  1670.     INLINE $AA35;
  1671.     {$ENDC}
  1672. FUNCTION RealColor({CONST}VAR color: RGBColor): BOOLEAN;
  1673.     {$IFC NOT GENERATINGCFM}
  1674.     INLINE $AA36;
  1675.     {$ENDC}
  1676. PROCEDURE GetSubTable(myColors: CTabHandle; iTabRes: INTEGER; targetTbl: CTabHandle);
  1677.     {$IFC NOT GENERATINGCFM}
  1678.     INLINE $AA37;
  1679.     {$ENDC}
  1680. PROCEDURE MakeITable(cTabH: CTabHandle; iTabH: ITabHandle; res: INTEGER);
  1681.     {$IFC NOT GENERATINGCFM}
  1682.     INLINE $AA39;
  1683.     {$ENDC}
  1684. PROCEDURE AddSearch(searchProc: ColorSearchUPP);
  1685.     {$IFC NOT GENERATINGCFM}
  1686.     INLINE $AA3A;
  1687.     {$ENDC}
  1688. PROCEDURE AddComp(compProc: ColorComplementUPP);
  1689.     {$IFC NOT GENERATINGCFM}
  1690.     INLINE $AA3B;
  1691.     {$ENDC}
  1692. PROCEDURE DelSearch(searchProc: ColorSearchUPP);
  1693.     {$IFC NOT GENERATINGCFM}
  1694.     INLINE $AA4C;
  1695.     {$ENDC}
  1696. PROCEDURE DelComp(compProc: ColorComplementUPP);
  1697.     {$IFC NOT GENERATINGCFM}
  1698.     INLINE $AA4D;
  1699.     {$ENDC}
  1700. PROCEDURE SetClientID(id: INTEGER);
  1701.     {$IFC NOT GENERATINGCFM}
  1702.     INLINE $AA3C;
  1703.     {$ENDC}
  1704. PROCEDURE ProtectEntry(index: INTEGER; protect: BOOLEAN);
  1705.     {$IFC NOT GENERATINGCFM}
  1706.     INLINE $AA3D;
  1707.     {$ENDC}
  1708. PROCEDURE ReserveEntry(index: INTEGER; reserve: BOOLEAN);
  1709.     {$IFC NOT GENERATINGCFM}
  1710.     INLINE $AA3E;
  1711.     {$ENDC}
  1712. PROCEDURE SetEntries(start: INTEGER; count: INTEGER; VAR aTable: CSpecArray);
  1713.     {$IFC NOT GENERATINGCFM}
  1714.     INLINE $AA3F;
  1715.     {$ENDC}
  1716. PROCEDURE SaveEntries(srcTable: CTabHandle; resultTable: CTabHandle; VAR selection: ReqListRec);
  1717.     {$IFC NOT GENERATINGCFM}
  1718.     INLINE $AA49;
  1719.     {$ENDC}
  1720. PROCEDURE RestoreEntries(srcTable: CTabHandle; dstTable: CTabHandle; VAR selection: ReqListRec);
  1721.     {$IFC NOT GENERATINGCFM}
  1722.     INLINE $AA4A;
  1723.     {$ENDC}
  1724. FUNCTION QDError: INTEGER;
  1725.     {$IFC NOT GENERATINGCFM}
  1726.     INLINE $AA40;
  1727.     {$ENDC}
  1728. PROCEDURE CopyDeepMask({CONST}VAR srcBits: BitMap; {CONST}VAR maskBits: BitMap; {CONST}VAR dstBits: BitMap; {CONST}VAR srcRect: Rect; {CONST}VAR maskRect: Rect; {CONST}VAR dstRect: Rect; mode: INTEGER; maskRgn: RgnHandle);
  1729.     {$IFC NOT GENERATINGCFM}
  1730.     INLINE $AA51;
  1731.     {$ENDC}
  1732. PROCEDURE DeviceLoop(drawingRgn: RgnHandle; drawingProc: DeviceLoopDrawingUPP; userData: LONGINT; flags: DeviceLoopFlags);
  1733.     {$IFC NOT GENERATINGCFM}
  1734.     INLINE $ABCA;
  1735.     {$ENDC}
  1736. FUNCTION GetMaskTable: Ptr;
  1737.     {$IFC NOT GENERATINGCFM}
  1738.     INLINE $A836, $2E88;
  1739.     {$ENDC}
  1740. FUNCTION GetPattern(patternID: INTEGER): PatHandle;
  1741.     {$IFC NOT GENERATINGCFM}
  1742.     INLINE $A9B8;
  1743.     {$ENDC}
  1744. FUNCTION GetCursor(cursorID: INTEGER): CursHandle;
  1745.     {$IFC NOT GENERATINGCFM}
  1746.     INLINE $A9B9;
  1747.     {$ENDC}
  1748. FUNCTION GetPicture(pictureID: INTEGER): PicHandle;
  1749.     {$IFC NOT GENERATINGCFM}
  1750.     INLINE $A9BC;
  1751.     {$ENDC}
  1752. FUNCTION DeltaPoint(ptA: Point; ptB: Point): LONGINT;
  1753.     {$IFC NOT GENERATINGCFM}
  1754.     INLINE $A94F;
  1755.     {$ENDC}
  1756. PROCEDURE ShieldCursor({CONST}VAR shieldRect: Rect; offsetPt: Point);
  1757.     {$IFC NOT GENERATINGCFM}
  1758.     INLINE $A855;
  1759.     {$ENDC}
  1760. PROCEDURE ScreenRes(VAR scrnHRes: INTEGER; VAR scrnVRes: INTEGER);
  1761.     {$IFC NOT GENERATINGCFM}
  1762.     INLINE $225F, $32B8, $0102, $225F, $32B8, $0104;
  1763.     {$ENDC}
  1764. PROCEDURE GetIndPattern(VAR thePat: Pattern; patternListID: INTEGER; index: INTEGER);
  1765. {$IFC OLDROUTINENAMES }
  1766. PROCEDURE DisposPixMap(pm: PixMapHandle);
  1767.     {$IFC NOT GENERATINGCFM}
  1768.     INLINE $AA04;
  1769.     {$ENDC}
  1770. PROCEDURE DisposPixPat(pp: PixPatHandle);
  1771.     {$IFC NOT GENERATINGCFM}
  1772.     INLINE $AA08;
  1773.     {$ENDC}
  1774. PROCEDURE DisposCTable(cTable: CTabHandle);
  1775.     {$IFC NOT GENERATINGCFM}
  1776.     INLINE $AA24;
  1777.     {$ENDC}
  1778. PROCEDURE DisposCCursor(cCrsr: CCrsrHandle);
  1779.     {$IFC NOT GENERATINGCFM}
  1780.     INLINE $AA26;
  1781.     {$ENDC}
  1782. {$IFC OLDROUTINELOCATIONS }
  1783. PROCEDURE DisposCIcon(theIcon: CIconHandle);
  1784.     {$IFC NOT GENERATINGCFM}
  1785.     INLINE $AA25;
  1786.     {$ENDC}
  1787. {$ENDC}
  1788. PROCEDURE DisposGDevice(gdh: GDHandle);
  1789.     {$IFC NOT GENERATINGCFM}
  1790.     INLINE $AA30;
  1791.     {$ENDC}
  1792. {$ENDC}
  1793.  
  1794. {$ALIGN RESET}
  1795. {$POP}
  1796.  
  1797. {$SETC UsingIncludes := QuickdrawIncludes}
  1798.  
  1799. {$ENDC} {__QUICKDRAW__}
  1800.  
  1801. {$IFC NOT UsingIncludes}
  1802.  END.
  1803. {$ENDC}
  1804.